package sistema.controleVendas.telas;

import javax.swing.JPanel;
import javax.swing.JFrame;

import java.awt.Rectangle;
import javax.swing.JButton;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.border.TitledBorder;
import java.awt.Font;
import java.awt.Color;
import java.util.Vector;

import javax.swing.border.EtchedBorder;
import javax.swing.table.DefaultTableModel;

import sistema.controleVendas.controladores.GerenciarClientes;
import sistema.controleVendas.entidades.Interesse;
import sistema.controleVendas.entidades.PessoaFisica;
import java.awt.Dimension;

public class TelaVendasBuscaVendedor extends JFrame {

	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null;
	private JPanel conteudo = null;
	private JScrollPane tabelaClientesSP = null;
	private JTable tabelaClientesT = null;
	private JTextField buscar = null;
	private JLabel buscarT = null;
	private GerenciarClientes gerenciarClientes = null;  //  @jve:decl-index=0:
	private DefaultTableModel clientes = null;
	private ButtonGroup grupoOpcoes = null;  //  @jve:decl-index=0:
	private Vector valores = null;
	private JButton adicionarB = null;
	private JButton sairB = null;
	private Interesse interesse = null;  //  @jve:decl-index=0:
	/**
	 * This is the default constructor
	 */
	public TelaVendasBuscaVendedor() {
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(660, 451);
		this.setContentPane(getJContentPane());
		this.setTitle("Buscar Vendedor");
		try{
			UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
			SwingUtilities.updateComponentTreeUI(this);
		}catch(Exception e){

		}
		
		
		
		
		gerenciarClientes = new GerenciarClientes();
		
		interesse = new Interesse();
		for(Interesse inte : gerenciarClientes.listarInteresses()){
			if(inte.getDescricao().equalsIgnoreCase("Funcionario")){
				interesse = inte;
			}
		}
		
		listarTodasPessoas();
		
		
	}
	
	
	public void listarTodasPessoas(){
		clientes.setRowCount(0);
		valores = new Vector();
		for(PessoaFisica p1 : gerenciarClientes.buscarPessoas(interesse)){
			valores = new Vector();
			valores.add(p1.getId());
			valores.add(p1.getNome());
			valores.add(p1.getCpf());
			valores.add(p1.getRg());
			valores.add(p1.getEndereco().getLogradouro());
			valores.add(p1.getEndereco().getCidade().getNome());
			valores.add(p1.getEndereco().getCidade().getEstado());
			clientes.addRow(valores);
		}
		
		
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(getConteudo(), null);
		}
		return jContentPane;
	}

	/**
	 * This method initializes conteudo	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getConteudo() {
		if (conteudo == null) {
			buscarT = new JLabel();
			buscarT.setBounds(new Rectangle(24, 24, 36, 16));
			buscarT.setText("Nome:");
			conteudo = new JPanel();
			conteudo.setLayout(null);
			conteudo.setBounds(new Rectangle(0, 0, 643, 427));
			conteudo.setEnabled(true);
			conteudo.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
			conteudo.setVisible(true);
			conteudo.add(getTabelaClientesSP(), null);
			conteudo.add(getBuscar(), null);
			conteudo.add(buscarT, null);
			conteudo.add(getAdicionarB(), null);
			conteudo.add(getSairB(), null);
		}
		return conteudo;
	}

	/**
	 * This method initializes tabelaClientesSP	
	 * 	
	 * @return javax.swing.JScrollPane	
	 */
	private JScrollPane getTabelaClientesSP() {
		if (tabelaClientesSP == null) {
			tabelaClientesSP = new JScrollPane();
			tabelaClientesSP.setBounds(new Rectangle(24, 51, 595, 256));
			tabelaClientesSP.setViewportView(getTabelaClientesT());
		}
		return tabelaClientesSP;
	}

	/**
	 * This method initializes tabelaClientesT	
	 * 	
	 * @return javax.swing.JTable	
	 */
	private JTable getTabelaClientesT() {
		if (tabelaClientesT == null) {
			clientes = new DefaultTableModel();
			clientes.addColumn("id");
			clientes.addColumn("Nome");
			clientes.addColumn("CPF");
			clientes.addColumn("RG");
			clientes.addColumn("Endereco");
			clientes.addColumn("Cidade");
			clientes.addColumn("Estado");
			tabelaClientesT = new JTable(clientes);
			tabelaClientesT.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
		}
		return tabelaClientesT;
	}

	/**
	 * This method initializes buscar	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getBuscar() {
		if (buscar == null) {
			buscar = new JTextField();
			buscar.setBounds(new Rectangle(66, 24, 361, 19));
			buscar.addKeyListener(new java.awt.event.KeyAdapter() {
				public void keyReleased(java.awt.event.KeyEvent e) {
					// Se estiver vazio o campo, liste tds com o mesmo interesse
					if(buscar.getText().equalsIgnoreCase("")){
						listarTodasPessoas();
					}else{
						String campo = "";

						clientes.setRowCount(0);
						
						for(PessoaFisica p1 : gerenciarClientes.buscarPessoas(campo, buscar.getText(),interesse)){
							valores = new Vector();
							valores.add(p1.getId());
							valores.add(p1.getNome());
							valores.add(p1.getCpf());
							valores.add(p1.getRg());
							valores.add(p1.getEndereco().getLogradouro());
							valores.add(p1.getEndereco().getCidade().getNome());
							valores.add(p1.getEndereco().getCidade().getEstado());
							clientes.addRow(valores);
						}
					}
					
					
					
					
					
				}
			});
		}
		return buscar;
	}

	/**
	 * This method initializes adicionarB	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getAdicionarB() {
		if (adicionarB == null) {
			adicionarB = new JButton();
			adicionarB.setBounds(new Rectangle(186, 318, 91, 25));
			adicionarB.setText("Adicionar");
			adicionarB.addActionListener(new java.awt.event.ActionListener() {   
				public void actionPerformed(java.awt.event.ActionEvent e) {    
					int numLinha = tabelaClientesT.getSelectedRow();
					int id = Integer.parseInt(tabelaClientesT.getValueAt(numLinha, 0).toString());
					Main.getMain().getTv().adicionarVendedor(id);
					dispose();
				}
			
			});
		}
		return adicionarB;
	}

	/**
	 * This method initializes sairB	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getSairB() {
		if (sairB == null) {
			sairB = new JButton();
			sairB.setBounds(new Rectangle(294, 318, 97, 25));
			sairB.setText("Sair");
		}
		return sairB;
	}

}  //  @jve:decl-index=0:visual-constraint="10,10"
